package cn.jx.asc.common.response;


import cn.jx.asc.common.enums.ResultStatus;

/**
 * @author QiuKangming
 * @version 1.0
 * @description 响应工具类, 设计静态方法返回指定消息类型
 * @since 2020/06/18 09:41
 */

public class ResultUtils {

    /**
     * 返回响应结果, 无 data, 设置 msg
     * @param status 响应状态对象
     * @param msg 响应信息
     * @return Result
     */
    public static Result resultWithoutData(ResultStatus status, String msg){
        return Result.builder()
                .status(status.getCode())
                .msg(msg)
                .data("")
                .build();
    }

    /**
     * 返回响应结果, 无 data
     * @param status 响应状态对象
     * @return Result
     */
    public static Result resultWithoutData(ResultStatus status){

        return resultWithoutData(status, status.getMsg());

    }

    /**
     * 返回响应结果并且返回数据, 设置msg
     * @param status 响应状态对象
     * @param msg 消息
     * @param data 数据
     * @return Result
     */
    public static Result resultWithData(ResultStatus status, String msg, Object data){
        return Result.builder()
                .status(status.getCode())
                .msg(msg)
                .data(data)
                .build();
    }

    /**
     * 返回响应结果并且返回数据
     * @param status 响应状态对象
     * @param data 数据
     * @return Result
     */
    public static Result resultWithData(ResultStatus status, Object data){
        return Result.builder()
                .status(status.getCode())
                .msg(status.getMsg())
                .data(data)
                .build();
    }

}
